package com.app.service;

import com.app.common.Result;
import com.app.model.AdminUserModel;
import com.app.model.UserModel;
import com.app.model.VoucherRecordModel;
import com.app.vo.VoucherRecordVo;
import com.baomidou.mybatisplus.extension.service.IService;

import javax.servlet.http.HttpServletResponse;

/**
 * 益联券记录表
 * @author 16693103420
 * @since 2024-01-26
 */
public interface VoucherRecordService extends IService<VoucherRecordModel> {
    //查询益联券使用记录
    VoucherRecordVo getUserVoucherRecordList(Integer page, Integer limit, Integer userId);

    /**
     * 查询券、积分的记录（根据订单号、名称、手机号、时间范围）
     * @param pageSize
     * @param limit
     * @param areaId
     * @param userModel
     * @return
     */
    Result getVoucherIntegralRecord(String keyword, Integer ifVI, String beginTime,
                                    String endTime, Integer pageSize, Integer limit, Integer areaId, AdminUserModel userModel,String typeName);
/**
 * 券和积分查询详情
 */
    Result getVoucherOrIntegralById(Integer ifVI, Integer id);

    /**
     * 券的排行帮
     * @return
     */
    Result voucherRanking(Integer businessId,Integer cityId,Integer areaId);

    /**
     * 券记录统计
     *
     * @param keyword   关键字
     * @param ifVI      如果vi
     * @param beginTime 开始时间
     * @param endTime   结束时间
     * @param areaId    区域id
     * @param user      用户
     * @return {@link Result}
     */
    Result voucherRecordStatistics(String keyword, Integer ifVI, String beginTime, String endTime, Integer areaId, AdminUserModel user,String typeName);

    /**
     * 总使用优惠券
     *
     * @param startTime 开始时间
     * @param endTime   结束时间
     * @return {@link Object}
     */
    Object totalUsageCoupons(String startTime, String endTime);

    void downLoadVoucherInfoExcel(Integer roleId, HttpServletResponse response)throws Exception;
}
